package com.qiangesoft.mybatisflex.config;

import com.mybatisflex.annotation.SetListener;

/**
 * 设值监听
 */
public class MySetListener implements SetListener {

    @Override
    public Object onSet(Object entity, String property, Object value) {
        // 手机号隐私，没有权限不给看
        if (property.equals("phone")) {
            boolean hasPhonePermission = getPermission();
            if (!hasPhonePermission) {
                value = null;
            }
        }

        // 密码加密
        if (property.equals("password")) {
            if (value != null) {
                value = encrypt(value);
            }
        }

        // 枚举数据转换
        if (property.equals("status") && value != null) {
            return "1".equals(value) ? "启用" : "禁用";
        }
        return value;
    }

    /**
     * 加密
     * @param value
     * @return
     */
    private Object encrypt(Object value) {
        // todo 需要自己实现加密逻辑
        return "";
    }

    /**
     * 查询当前用户的权限
     * @return
     */
    private boolean getPermission() {
        // todo 实际业务需要修改，这里暂定没有权限
        return true;
    }

}